<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>


    // 字符匹配符
    // [xyz]  匹配集合中任意一个(x或y或z)
    // [0-9]  匹配数字  [0123456789]
    // [A-Z]  匹配大写  [QWERTYUIOPASDFGHJKLZXCVBNM]
    // [a-z]  匹配小写  [qwertyuiopasdfghjklzxcvbnm]
    // [0-9a-zA-Z_]  匹配数字,字母,下换线

    // 取反  ^用在字符匹配符的最前面表示取反
    // [^xyz]  匹配除x,y,z以外任意一个字符
    // [^0-9]  匹配非数字
    // [^0-9a-zA-Z_]  匹配非数字,字母,下换线

    // 注意: 在字符匹配符中,除了[ ] ^ - 字符簇 以外, 都是普通字符

    // 官方给定字符簇(集合)
    // \d  匹配数字 [0-9]
    // \D  匹配非数字 [^0-9]
    // \w  匹配数字,字母,下换线 [0-9a-zA-Z_]
    // \W  匹配非数字,字母,下换线 [0-9a-zA-Z_]
    // \s  匹配空白字符(空格 换行符\n 回车符\r)
    // \S  匹配非空白字符(空格 换行符\n 回车符\r)
    // .   匹配除换行以外的任意字符 [^\n]
    // [\u4e00-\u9fa5]  匹配中文


    // 用户名
    // 由数字 字母 下划线组成, 6-12位,且不能以数字开头

    var user = "a123哈哈哈";

    // var uReg = /^[0-9a-zA-Z_]{6,12}$/; // 由数字 字母 下划线组成, 6-12位
    // var uReg = /^[^0-9][0-9a-zA-Z_]{5,11}$/; // 由数字 字母 下划线组成, 6-12位,不能以数字开头
    var uReg = /^[a-zA-Z_][0-9a-zA-Z_]{5,11}$/; // 由数字 字母 下划线组成, 6-12位,不能以数字开头
    var uReg = /^[a-zA-Z_$][0-9a-zA-Z_$]{5,11}$/; // 由数字 字母 下划线组成, 6-12位,不能以数字开头
    var uReg = /^[a-zA-Z_$][\w$]{5,11}$/; // 由数字 字母 下划线 $组成, 6-12位,不能以数字开头
    var uReg = /^[a-zA-Z_$\u4e00-\u9fa5][\w$\u4e00-\u9fa5]{5,11}$/; // 由 中文 数字 字母 下划线组成, 6-12位,不能以数字开头

    console.log(uReg.test(user));



    // 匹配手机号
    // 1  [3456789] 

    var phone = "17386141517";
    var reg = /^1[3-9]\d{9}$/;

    console.log(reg.test(phone));




</script>

</html>